Skip to content

Conversation

@TheSecondLord
Copy link
Contributor

@TheSecondLord TheSecondLord commented Oct 20, 2025

About the PR

Edit: this PR now only adds the loot-stash toilet entity as an option and does not map it by default.

The cistern stashes of most toilets (accessed via using a crowbar on a toilet) now have a 50% chance to contain a single small item chosen from a table of random, possibly useful items.
Additionally, the captain's golden toilet cistern (the thief objective one) will now always contains a captain figurine. Nevermind this test fails because at least 1 map already maps something inside the golden toilet cistern.

Suggested by ArtisticRoomba.

Why / Balance

The secret cistern stash is very rarely used, so this gives it a little something as a treat for those who check them, similar to maints lockers. The loot table is entirely made of small tools, items, and weak improvised weapons, being similar to the maints locker pool except much smaller and without any fluff. It is mostly focused on providing possible minor utility to prisoners, who are usually guaranteed to have 1 or 2 toilets in their cell which they can smash open to access the hidden item.

Currently, the prison break strategy is very formulaic. Make shiv, grow towercap, make baseball bat, go ham on a window and pray. Hopefully this will introduce the opportunity for more interesting prison break strategies, or even just give the prisoner a chance to get some stuff to mess with (and for the warden to be very confused about). It would be neat if prisoners also had a way to get crafted trash crowbars so they can actually use the stash instead of needing to smash the toilet but that's out of scope for this.

Technical details

All yaml changes.
Added the ToiletCisternLoot entity table in the misc locker fills (close enough)
Added the ToiletFilled and ToiletDirtyWaterFilled which parent from ToiletEmpty and ToiletDirtyWater respectively and just add an EntityTableContainerFill component which uses the ToiletCisternLoot table. The original entities are still free to be used if you need a toilet to spawn without loot
Added a ContainerFill component to ToiletGoldenDirtyWater which uses the captain toy figurine
Replaced ToiletEmpty and ToiletDirtyWater with their new filled versions in migration.yml so all mapped toilets will be the loot-filled versions Edit: Nevermind this causes test fail and also I was told not to do that. Currently this just adds the entities and doesn't map them
Edit: Added entity tables for each of the loot categories for clarity's sake

Media

2025-10-19.15-16-04.mp4

Small showcase of the loot table (updated after changes were made)
image

Requirements

Breaking changes

I hope not

Changelog

@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/S Denotes a PR that changes 10-99 lines. Changes: No C# Changes: Requires no C# knowledge to review or fix this item. labels Oct 20, 2025
@TheSecondLord
Copy link
Contributor Author

epic test fail I'll check that tomorrow

Comment on lines 740 to 741
ToiletEmpty: ToiletFilled
ToiletDirtyWater: ToiletDirtyWaterFilled
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dont use migrations to replace entities which are still in the game. This will silently overwrite anyone attempting to place an actual unfilled toilet on a map

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I was told this is the way to do it. Whats the alternative? Just add the new entity and leave it up to mappers to swap every toilet?

@PJBot PJBot added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Oct 20, 2025
@MidZik
Copy link
Contributor

MidZik commented Oct 20, 2025

As a side effect this will make toilets way worse for hiding things. Right now, hiding something in a cistern or bowl is low risk, because the only way you'll find something in there is if someone put something there, same as with potted plants. The vast majority of the time, no one will check a toilet for something hidden.

With this change, someone is guaranteed to find something. And that something could be insuls or interdyne cigs, things that can make it worth spending time to check. I wouldn't be surprised if every toilet on the map gets checked at some point during the round.

Personally, I'd prefer if you don't change every toilet to a lootbox. I don't mind that this prototype exists, but let the mappers decide where to put it. If you intend it as assistance to prisoners, change the maps to use this toilet inside prisons instead, and keep the normal toilets elsewhere unchanged.

Golden toilet change seems fine.

Copy link
Member

@ArtisticRoomba ArtisticRoomba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's decide what color the shed should be

@ArtisticRoomba
Copy link
Member

The vast majority of the time, no one will check a toilet for something hidden.

It can be seen as metagaming to check the toilets for no reason. People often complain about rules a lot - even if it is or isn't against the rules - so this gives people a bit of an excuse to go mucking about toilets. I'd like to reduce the reliance on rules as much as possible as it generally fosters a really annoying environment where people tattle tale on each other, wasting everyone's time (including the admin tending to them).

@lzk228 lzk228 added P3: Standard Priority: Default priority for repository items. T: New Feature Type: New feature or content, or extending existing content D3: Low Difficulty: Some codebase knowledge required. A: General Interactions Area: General in-game interactions that don't relate to another area. and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Oct 21, 2025
@PJBot PJBot added size/M Denotes a PR that changes 100-999 lines. and removed size/S Denotes a PR that changes 10-99 lines. labels Oct 21, 2025
@Hitlinemoss
Copy link
Contributor

Hitlinemoss commented Oct 22, 2025

I'm not a huge fan of this concept if only because I think encouraging crew to rummage through the public bathroom toilets for loot at the start of every shift (even if the tables were changed to just fun/funny loot) is slightly too goofy in my eyes.

What might work is if only certain toilets spawn random loot (e.g toilets in the brig, or toilets in abandoned maints bathrooms), since those are more the kinds of places where it makes sense for someone to have hidden something illegal. I'd probably also adjust the loot table to better fit with things you might expect someone to stash in a toilet cistern (which probably means, like... drugs, weed, bottles of alcohol, and very rarely something like a shiv or a basic tool). It's weird in terms of verisimilitude for toilets to just have construction tools, functional batteries, medicine, or weapons in them half the time; the PR draws a comparison to maints lockers, but a locker is specifically meant to store useful equipment, and hiding something in a toilet is more an emergency "I need to make sure nobody else finds this" option.

Even then, I'd probably still be a bit wary of this change because I feel like this encourages security to inspect the brig's toilets at the start of every shift in order to make sure they don't have anything dangerous inside. On the other hand, I think some maps already do have some hidden weapons/tools hidden in the brig so it could be argued there's precedent for it.

@ArtisticRoomba
Copy link
Member

I'm not a huge fan of this concept if only because I think encouraging crew to rummage through the public bathroom toilets for loot at the start of every shift

Not sure how it's any different from crew ransacking the maints closets like animals.

Even then, I'd probably still be a bit wary of this change because I feel like this encourages security to inspect the brig's toilets at the start of every shift in order to make sure they don't have anything dangerous inside.

Hardcore:tm: wardens already prep the brig if they really care about not having fun so it's not like this is any different.

@PJBot PJBot added the S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. label Oct 22, 2025
@PJBot PJBot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. and removed S: Awaiting Changes Status: Changes are required before another review can happen labels Oct 22, 2025
@Hitlinemoss
Copy link
Contributor

Not sure how it's any different from crew ransacking the maints closets like animals.

The distinction is mostly that plundering a locker is generally more dignified and less messy than plundering a toilet.

@TheSecondLord
Copy link
Contributor Author

What might work is if only certain toilets spawn random loot (e.g toilets in the brig, or toilets in abandoned maints bathrooms), since those are more the kinds of places where it makes sense for someone to have hidden something illegal.

The pr now only adds the entity with the loot, and it will be up to map maintainer's discretion to place the loot-holding versions. I agree that the public bathrooms are probably fine without this. Also I'm gonna remove the changelog since this isn't really player-facing anymore

I'd probably also adjust the loot table to better fit with things you might expect someone to stash in a toilet cistern (which probably means, like... drugs, weed, bottles of alcohol, and very rarely something like a shiv or a basic tool). It's weird in terms of verisimilitude for toilets to just have construction tools, functional batteries, medicine, or weapons in them half the time...

This is fair, but I'm sacrificing realism for gameplay here since stashed drinks and drugs are more or less useless. Besides, it makes sense that former inmated would stash tools, since a warden would probably confiscate even basic tools from a prisoner.

@Hitlinemoss
Copy link
Contributor

This is fair, but I'm sacrificing realism for gameplay here since stashed drinks and drugs are more or less useless. Besides, it makes sense that former inmated would stash tools, since a warden would probably confiscate even basic tools from a prisoner.

I feel like toilet loot should more be a fun/immersive thing rather than being "useful" per se. As far as tools go I could probably see stuff like a screwdriver, wrench, or wirecutters (and maybe gloves too) but probably not more complex/bulky tools like batteries, welding gear, or gas masks.

@ArtisticRoomba
Copy link
Member

The distinction is mostly that plundering a locker is generally more dignified and less messy than plundering a toilet.

If this is what your argument boils down to then I struggle to see this as a pressing concern.

@Hitlinemoss
Copy link
Contributor

The distinction is mostly that plundering a locker is generally more dignified and less messy than plundering a toilet.

If this is what your argument boils down to then I struggle to see this as a pressing concern.

It's mostly just a concern of tone more than anything else. "Ransack public toilets for gamer loot" isn't really something I want to see become a staple of rounds.

@iaada
Copy link
Member

iaada commented Oct 23, 2025

I'm fine with the browntiders raiding toilets for loot. If I see someone digging in a toilet I can rightly judge them for it. It's something very obviously "wrong" and "gross" for a person to do that can be a springboard for RP.

@iaada iaada added this pull request to the merge queue Oct 23, 2025
Merged via the queue into space-wizards:master with commit 80d4f3d Oct 23, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: General Interactions Area: General in-game interactions that don't relate to another area. Changes: No C# Changes: Requires no C# knowledge to review or fix this item. D3: Low Difficulty: Some codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: New Feature Type: New feature or content, or extending existing content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants